# -*- coding: utf-8 -*-

 ###############################################
 ##                                             ##
 ##   Empresa Básica                             ##
 ##                                              ##
 ##                                              ##
 ##                                              ##
 ##   por Críptidos Digitales                    ##
 ##   GPL (c)2008                                ##
  ##                                             ##
    ###############################################

print (0), "  equipos.seleccionEquipo gin"

from PyQt4 import QtCore, QtGui

from cdWidgets import cdGrowDialog as cdGrowDialog

import seleccionEquipo_ui


print (0), "  equipos.seleccionEquipo definitions"

class SeleccionEquipo(cdGrowDialog.CDGrowFrame):

    @property
    def owner(self):
        return self.__owner


    def __init__(self, *args, **kwds):
        if kwds.has_key('owner'):
            self.__owner = kwds.pop('owner')
        else:
            self.__owner = None

        cdGrowDialog.CDGrowFrame.__init__(self, *args, **kwds)

        self.ui = seleccionEquipo_ui.Ui_Form()
        self.ui.setupUi(self)

        self.setStyleSheet("background-color:#DFDFDF;")

        self.initialize()

        self.ui.tablaCodigo.setColumnCount(1)
        self.ui.tablaCodigo.horizontalHeader().setResizeMode(0, QtGui.QHeaderView.Stretch)
        self.ui.tablaCodigo.horizontalHeader().setVisible(False)

        self.ui.tablaCodigo2.setColumnCount(1)
        self.ui.tablaCodigo2.horizontalHeader().setResizeMode(0, QtGui.QHeaderView.Stretch)
        self.ui.tablaCodigo2.horizontalHeader().setVisible(False)


        QtCore.QObject.connect(self.ui.edCodigo, QtCore.SIGNAL("textEdited(QString)"), self.actualizarSeries)
        QtCore.QObject.connect(self.ui.edCodigo2, QtCore.SIGNAL("textEdited(QString)"), self.actualizarPlacas)

        QtCore.QObject.connect(self.ui.tablaCodigo, QtCore.SIGNAL("currentItemChanged(QTableWidgetItem *, QTableWidgetItem *)"), self.actualizarSelected)
        QtCore.QObject.connect(self.ui.tablaCodigo, QtCore.SIGNAL("itemDoubleClicked(QTableWidgetItem *)"), self.aceptar)

        QtCore.QObject.connect(self.ui.tablaCodigo2, QtCore.SIGNAL("currentItemChanged(QTableWidgetItem *, QTableWidgetItem *)"), self.actualizarSelected)
        QtCore.QObject.connect(self.ui.tablaCodigo2, QtCore.SIGNAL("itemDoubleClicked(QTableWidgetItem *)"), self.aceptar)

        QtCore.QObject.connect(self.ui.boAgregar, QtCore.SIGNAL("clicked()"), self.agregar)
        QtCore.QObject.connect(self.ui.boCancelar, QtCore.SIGNAL("clicked()"), self.cancelar)
        QtCore.QObject.connect(self.ui.boAceptar, QtCore.SIGNAL("clicked()"), self.aceptar)

        self.id = None


    def aceptar(self):
        print "aceptar()"
        if self.id is not None:
            self.start()
            self.emit(QtCore.SIGNAL("selected(int)"), self.id)


    def actualizarTipo(self):
        pass

    def actualizarMarca(self):
        pass

    def actualizarLinea(self):
        pass

    def actualizarModelo(self):
        pass



    def actualizarSelected(self, new, old):
        self.id = new.data(1000).toInt()[0]
        dato = self.owner.bd.get("equipos", {'equipo_id':self.id})
        self.ui.laDescripcion.setText("%s %s %s %s" % (dato['tipo'], dato['marca'], dato['linea'], dato['modelo']))
        self.ui.laCodigo.setText(dato['codigo'])
        self.ui.laCodigo2.setText(dato['codigo2'])


    def actualizarPlacas(self, text):
        print "actualizarPlacas()"
        if text:
            filtros = {'codigo2':"LIKE %s%%" % text}
            datos = self.owner.bd.getMany("equipos", filtros)
        else:
            datos = self.owner.bd.getMany("equipos")

        self.ui.tablaCodigo2.setRowCount(0)

        for index, dato in enumerate(datos):
            self.ui.tablaCodigo2.insertRow(index)

            if dato['codigo2']:
                item = QtGui.QTableWidgetItem(dato['codigo2'])
                item.setFlags(item.flags().__xor__(QtCore.Qt.ItemIsEditable))
                item.setData(1000, QtCore.QVariant(dato['equipo_id']))
                self.ui.tablaCodigo2.setItem(index, 0, item)

        self.id = None


    def actualizarSeries(self, text):
        print "actualizarSeries()"
        if text:
            filtros = {'codigo':"LIKE %s%%" % text}
            datos = self.owner.bd.getMany("equipos", filtros)
        else:
            datos = self.owner.bd.getMany("equipos")

        self.ui.tablaCodigo.setRowCount(0)

        for index, dato in enumerate(datos):
            self.ui.tablaCodigo.insertRow(index)
            item = QtGui.QTableWidgetItem(dato['codigo'])
            item.setFlags(item.flags().__xor__(QtCore.Qt.ItemIsEditable))
            item.setData(1000, QtCore.QVariant(dato['equipo_id']))
            self.ui.tablaCodigo.setItem(index, 0, item)

        self.id = None


    def agregar(self):
        self.owner.toggleAdministracion()
        self.owner.ui.administracionSlide.ui.tabWidget.setCurrentWidget(self.owner.ui.administracionSlide.ui.equipos)
        self.owner.ui.administracionSlide.ui.equipos.agregar()


    def cancelar(self):
        print "cancelar()"
        self.start()


    def start(self):
        self.basePos = self.buddy.pos() + self.buddy.parent().pos() + self.buddy.parent().parent().pos()
        cdGrowDialog.CDGrowFrame.start(self)
        if self.status == None:
            self.actualizarPlacas("")
            self.actualizarSeries("")


print (0), "  equipos.seleccionEquipo d"

